/*
 *Autor: Anderson Campos Cardoso
 *
 *Conteúdo: Arquivo cabeçalho para a classe Audio
 */

#include <iostream>
#include <SDL_mixer.h>
#include "constantes.h" /*diretiva para a inclusão do arquivo constantes.h*/

#ifndef _AUDIO_H_
#define _AUDIO_H_

using namespace std;    /*diretiva para usar o namespace padrão std*/

extern const int QUANTIDADE_CANAIS;

class Audio
{
   private:

   Mix_Music *musica;         /*música a ser tocada*/
   Mix_Chunk *vetorChunk[QUANTIDADE_CANAIS];     /*Vetor de Chunks*/

   public:

   void iniciaAudio(void);

   /*Métodos para tocar música*/
   void carregarMusica(string arquivoMusica);
   void mudarVolumeMusica(int volume);
   void tocarMuscia(int loops, int fade_in, int volume);
   void pausarMusica(void);
   void continuarMusica(void);
   void reiniciarMusica(void);
   void pararMusica(int fade_out);

   /*Métodos para sons nos canais*/
   void tocarSomCanal(string nomeArquivo, int loops,int fade_in, int volume,int canal);
   void pararSomCanal(int canal, int fade_out);
   void pausarSomCanal(int canal);
   void continuarSomCanal(int canal);
   void tocarEfeitoSonoro(int canal, int loops, int fade_in, int volume);
   void pararEfeitoSonoro(int canal, int fade_out);
   int alocarCanal(string nomeArquivo);
   void desalocarCanal(int canal);
   Audio(void);
   ~Audio(void);


};

#endif
